package com.atguigu.lease.web.converter;

import com.atguigu.lease.model.enums.ItemType;
import org.springframework.core.convert.converter.Converter;

/**
 * @author 51560
 * @project lease
 * @title 字符串转ItemType枚举转换器
 * @package com.atguigu.lease.web.convert
 * @since 2025/5/9 9:37
 *
 * 1. 实现converter自定义参数类型转化
 * 2. Converter<S, T> S:源类型 固定为String，T:目标类型
 * 3. 实现转化类型方法
 */
// @Component
public class String2ItemTypeConverter implements Converter<String, ItemType> {
    @Override
    public ItemType convert(String source) {
        // return switch (source) {
        //     case "1" -> ItemType.APARTMENT;
        //     case "2" -> ItemType.ROOM;
        //     default -> throw new RuntimeException("数据类型错误，值必须为1或者2");
        // };
        for (ItemType value : ItemType.values()) {
            if (value.getCode().equals(Integer.parseInt(source))) {
                return value;
            }
        }
        throw new RuntimeException("数据类型错误，值必须为1或者2");
    }
}
